//
//  MainTabBar.swift
//  SinaWeibo
//
//  Created by admin on 16/1/15.
//  Copyright © 2016年 mac. All rights reserved.
//

import UIKit

class MainTabBar: UITabBar {

    override init(frame: CGRect) {
       // 调用 父类的初始化方法super init
        super.init(frame: frame)
        setupUI()
    }
    //   一旦实现 init(frame:) 系统就默认当前类  只能通过手写代码的方式进行创建
    // 这个语句默认实现报错    通过 XIB/SB 加载视图 就会执行改方法
    required init?(coder aDecoder: NSCoder) {
      //  fatalError("init(coder:) has not been implemented")
        super.init(coder: aDecoder)
        setupUI()
    }
    
    
    private func setupUI() {
    
      addSubview(composeBtn)
    
    }
    

    // 懒加载
    
    lazy var composeBtn: UIButton = {
    //  ()  会返回一个  自定义的样式btn
      let btn = UIButton()
        btn.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: .Normal)
        btn.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), forState: .Highlighted)
        btn.setBackgroundImage(UIImage(named: "tabbar_compose_button"), forState: .Normal)
        btn.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"), forState: .Highlighted)
        // 根据按钮的背景图片 给定size大小
     btn.sizeToFit()
             return btn
    }()
    
    
    
    override func layoutSubviews() {
      super.layoutSubviews()
    //  修改每一个 item的宽度  病将中间的按钮位置空出来
       
        let w = screenW / 5
        let h = self.bounds.height
        let rect = CGRect(x: 0, y: 0, width: w, height: h)
        var index: CGFloat = 0
        for v in subviews
        {
       // 修改UITabBarButton 的frame  是一个私有的类
           
            if v.isKindOfClass(NSClassFromString("UITabBarButton")!){
            v.frame = CGRectOffset(rect,index * w, 0)
//                if index == 1{
//                  index++
//                }
//                index++
                index += (index == 1 ? 2 : 1)
            }
        
        }
        
        //  设置撰写按钮的frame
        composeBtn.frame = CGRectOffset(rect,2 * w, 0)
        //   压线处理前移
        //bringSubviewToFront(composeBtn)
    }
    
}
